Have `make install' write the Python version number in the #!
authorKeir Fraser <keir.fraser@citrix.com>
Wed, 11 Jun 2008 08:36:23 +0000 (09:36 +0100)
committerKeir Fraser <keir.fraser@citrix.com>
Wed, 11 Jun 2008 08:36:23 +0000 (09:36 +0100)
commit9f88f46834abd8bac0605f59c39b0e6ea51b1dfa
tree72f9a6db129e3a9997b69de7aa4ae7e6fac1c243
parentba65563c1bbad1d353c2493f65f41e6d62e6a2a0
Have `make install' write the Python version number in the #!

The Xen tools contain a number of Python extensions written in C.  The
C API to Python, used by these extensions, is not stable from one
version of Python to the next.

Our build system uses whatever version of Python is the default on the
build system at that time to build these extensions.  However, the
actual scripts such as `xm' use  #!/usr/bin/env python  which uses
whichever version of Python is the default on the deployment system at
the time of invocation.

If for any reason these two versions of Python are not the same (eg,
because the system is built on one computer and executed on another,
or because the system's gains a more recent Python installation
alongside the original which changes the previous default), warnings
and failures occur.

In this patch I arrange for Python scripts to be installed via a
special wrapper around `install', which determines the build-time
Python version and path and then writes that into the #! line at the
point of `make install' (or `make dist').  (It can also be overridden
by setting PYTHON_PATH.)

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
tools/Rules.mk
tools/misc/Makefile
tools/python/get-path [new file with mode: 0755]
tools/python/install-wrap [new file with mode: 0755]